package com.cheung.leetcode.day;

import org.junit.jupiter.api.Test;

/**
 * @BelongsProject : java-leetcode
 * @BelongsPackage : com.cheung.leetcode.day
 * @Author :  cheungming
 * @CreateTime : 2024-06-27 07:24:21
 * @Description : 每日 一题
 * @Version : 1.0
 */
public class Code2734Test {

    public String smallestString(String s) {
        char[] array = s.toCharArray();
        // 找到第一个非 a 的字符
        int start = -1;
        for (int i = 0; i < array.length; i++) {
            if (array[i] != 'a') {
                start = i;
                break;
            }
        }

        if (start == -1) {
            // 如果没有找到，说明 s 中所有的字符都是 a，则将最后一个字符变为 z
            array[array.length - 1] = 'z';
            return new String(array);
        } else {
            for (int i = start; i < array.length; i++) {
                if (array[i] != 'a') {
                    array[i]--;
                } else {
                    break;
                }
            }
        }


        return new String(array);
    }

    @Test
    public void test1() {
        assert "baabc".equals(smallestString("cbabc"));
    }

    @Test
    public void test2() {
        assert "abaab".equals(smallestString("acbbc"));
    }

    @Test
    public void test3() {
        assert "kddsbncd".equals(smallestString("leetcode"));
    }
}
